/**************************************************************************
	Replication do-file: "Corruption in Customs"
	Cyril Chalendard, Ana Fernandes, Gael Raballand and Bob Rijkers
	
	Created on: 01/07/2022
**************************************************************************/

clear all
set more off, perm
cap log close
cls

* ----------------------- DIRECTORIES AND FOLDERS ----------------------- *

* Directories in which data are stored
global main "PUT YOUR DIRECTORY PATH HERE"
cd "$folder"

* Folders
global outputdata = "$main\Output Data"
cap mkdir "$main\Tables"
global tables = "$main\Tables"

* ----------------------------- BEGINS HERE ----------------------------- *

* -------
* Dataset
* -------
use "$outputdata\CFRR.dta", clear // open dataset

* Sample
keep if sample_int==1 & eis_f!=. // keep observations of interest


* ---------
* Table A13
* ---------

* Globals
global dep "ln_time fraud c1_dlog_val c1_dlog_tax htrl_f_int"
global controls "tax_rate risk red_i mixed_dec differentiated valitrade_advice"
global controls2 "tax_rate risk red_i mixed_dec differentiated valitrade_advice ln_ival_usd ln_iwei nup_gap_i_int htrl_i_int"

* Matrix
** Panels with one independent variable of interest
forvalues x = 1(1)5 {
	mat tableA13_`x' = J(4,5,.)
	mat tableA13_`x'T = J(1,5,.)
}

* Loop for estimations
** Panel A: month-year FE
local i = 1
local j = 1
foreach x in $dep {

	qui: reghdfe `x' eis_f $controls if sample_reg==1 & year_reg<2018 , absorb(ym_*) vce(cluster insp_f key_dec)

	mat tableA13_1[`i',`j'] = _b[eis_f]
	local i = `i' + 1
	mat tableA13_1[`i',`j'] = _se[eis_f]
	mat tableA13_1T[1,`j'] = e(N)
	local i = `i' + 2
	mat tableA13_1[`i',`j'] = e(r2)
	local i = `i' -3
	local j = `j' +1
}
** Panel B: month-year and inspector FE
local i = 1
local j = 1
foreach x in $dep {

	qui: reghdfe `x' eis_f $controls if sample_reg==1 & year_reg<2018 , absorb(ym_* insp_f) vce(cluster insp_f key_dec)

	mat tableA13_2[`i',`j'] = _b[eis_f]
	local i = `i' + 1
	mat tableA13_2[`i',`j'] = _se[eis_f]
	mat tableA13_2T[1,`j'] = e(N)
	local i = `i' + 2
	mat tableA13_2[`i',`j'] = e(r2)
	local i = `i' -3
	local j = `j' +1
}
** Panel C: month-year, inspector and broker FE
local i = 1
local j = 1
foreach x in $dep {

	qui: reghdfe `x' eis_f $controls if sample_reg==1 & year_reg<2018 , absorb(ym_* insp_f key_dec) vce(cluster insp_f key_dec)

	mat tableA13_3[`i',`j'] = _b[eis_f]
	local i = `i' + 1
	mat tableA13_3[`i',`j'] = _se[eis_f]
	mat tableA13_3T[1,`j'] = e(N)
	local i = `i' + 2
	mat tableA13_3[`i',`j'] = e(r2)
	local i = `i' -3
	local j = `j' +1
}
** Panel D: month-year, inspector, broker and source country FE
local i = 1
local j = 1
foreach x in $dep {

	qui: reghdfe `x' eis_f $controls countryorig* if sample_reg==1 & year_reg<2018 , absorb(ym_* insp_f key_dec) vce(cluster insp_f key_dec)

	mat tableA13_4[`i',`j'] = _b[eis_f]
	local i = `i' + 1
	mat tableA13_4[`i',`j'] = _se[eis_f]
	mat tableA13_4T[1,`j'] = e(N)
	local i = `i' + 2
	mat tableA13_4[`i',`j'] = e(r2)
	local i = `i' -3
	local j = `j' +1
}
** Panel E: adding covariates from table 2 as controls
local i = 1
local j = 1
foreach x in $dep {

	qui: reghdfe `x' eis_f $controls2 e20 countryorig* max_twodigit* if sample_reg==1 & year_reg<2018 , absorb(ym_* insp_f key_dec) vce(cluster insp_f key_dec)

	mat tableA13_5[`i',`j'] = _b[eis_f]
	local i = `i' + 1
	mat tableA13_5[`i',`j'] = _se[eis_f]
	mat tableA13_5T[1,`j'] = e(N)
	local i = `i' + 2
	mat tableA13_5[`i',`j'] = e(r2)
	local i = `i' -3
	local j = `j' +1
}


* Export
* ------
putexcel set "$tables\Table A13.xlsx", replace sheet(TableA13) // create a new excel spreadsheet

* Title
putexcel (A1:F1), merge hcenter vcenter
putexcel A1 = "Before delegated randomization of inspector assignment"

* Dependent variables
putexcel A2 = "Dependent variable:", left vcenter bold
local cells `" "B" "C" "D" "E" "F" "'
local labels `" "Time" "Fraud" "\Delta log value" "\Delta log tax" "Hyp. tax revenue losses" "'
forvalues i = 1(1)5 {

	local x: word `i' of `labels'
	local y: word `i' of `cells'

	putexcel `y'2 = "`x'", hcenter vcenter bold	
}

* Panels
** Name
local y = 4
local labels `" "A. Including Only Month-Year Fixed Effects" "B. Including Month-Year and Inspector Fixed Effects" "C. Including Month-Year, Inspector, and Broker Fixed Effects" "D. Including Month-Year, Inspector, Broker, and Source Country Fixed Effects" "E. Adding All Covariates in Table 2 as Controls" "'
forvalues i = 1(1)5 {

	local x: word `i' of `labels'

	putexcel (A`y':F`y'), merge hcenter vcenter bold
	putexcel A`y' = "`x'"
	local y = `y'+7
}
putexcel (A33:F33), merge hcenter vcenter bold
putexcel A33 = "(With Month-Year, Inspector, Broker, Source Country, and HS2 Fixed Effects)"
** Coefficients
local j = 1
forvalues i = 6(7)28 {
	
	putexcel A`i' = "Excess interaction share", left vcenter
	putexcel B`i' = matrix(tableA13_`j'), nformat(0.000) hcenter vcenter
	local j = `j'+1
}
putexcel A35 = "Excess interaction share", left vcenter
putexcel B35 = matrix(tableA13_5), nformat(0.000) hcenter vcenter
** Observations
local j = 1
forvalues i = 8(7)29 {
	
	putexcel A`i' = "Observations", left vcenter
	putexcel B`i' = matrix(tableA13_`j'T), nformat(number_sep) hcenter vcenter
	local j = `j'+1
}
putexcel A37 = "Observations", left vcenter
putexcel B37 = matrix(tableA13_5T), nformat(number_sep) hcenter vcenter
** R2
forvalues i = 9(7)30 {
	putexcel A`i' = "R-squared", left vcenter
}
putexcel A38 = "R-squared", left vcenter
** Column numbers
global cells "B C D E F B C D E F B C D E F B C D E F B C D E F"
forvalues i = 1(1)25 {
	
	local y: word `i' of $cells

	if `i' < 6 {
		putexcel `y'5 = "(`i')", hcenter vcenter
	}
	
	if `i' > 5 & `i' < 11 {
		putexcel `y'12 = "(`i')", hcenter vcenter
	}
	
	if `i' > 10 & `i' < 16 {
		putexcel `y'19 = "(`i')", hcenter vcenter
	}
	
	if `i' > 15 & `i' < 21 {
		putexcel `y'26 = "(`i')", hcenter vcenter
	}
	
	if `i' > 20 {
		putexcel `y'34 = "(`i')", hcenter vcenter
	}
}


* -------------------------------- ENDS HERE -------------------------------- *